package com.company.project.dao;

import com.company.project.core.Mapper;
import com.company.project.model.SysFunction;
import com.company.project.model.SysResAuth;
import org.apache.ibatis.annotations.Param;

import java.util.HashMap;
import java.util.List;

public interface SysResAuthMapper extends Mapper<SysResAuth> {
    /**
     * 根据角色查询功能列表
     * @param roleId
     * @return
     */
    List<SysFunction> queryFunctionList(@Param("roleId") int roleId);

    /**
     * 根据角色查询功能列表
     * @param roleId
     * @return
     */
    List<SysResAuth> queryResAuthList(@Param("roleId") int roleId);

    /**
     * 查询数据规则
     * @param map
     * @return
     */
    List<SysFunction> getDataRule(HashMap<String, Object> map);

    /**
     * 查询功能列表
     * @param userId 用户id
     * @param type 功能类型
     * @return
     */
    List<SysFunction> getFunctionByUser(@Param("userId") int userId, @Param("type") int type, @Param("currentId") int currentId);

    /**
     * 查询功能列表
     * @param roleId 角色ID
     * @param type 功能类型
     * @param currentId
     * @return
     */
    List<SysFunction> getFunctionByRole(@Param("roleId") int roleId, @Param("type") int type, @Param("currentId") Integer currentId);

    /**
     * 根据角色和上级ID查询权限
     * @param roleId
     * @param parentFunction
     * @return
     */
    List<SysResAuth> getResAuthListByParent(@Param("roleId") int roleId, @Param("parentFunction") int parentFunction);
}